package com.ft.service;

import com.ft.domain.Commodity;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ft
 * @since 2022-06-01
 */
public interface CommodityService extends IService<Commodity> {
    /**
     * 查询商品名称是否存在
     * @param name :查询的商品名
     * @return 返回的商品名
     */
    public String selectByName(String name);

    /**
     * 添加商品
     * @param commodity 添加的商品对象
     * @return 受影响的行数 1成功，0失败
     */
    public int addCommodity(Commodity commodity);

    /**
     *根据传入的商品id对用户做逻辑删除
     * @param id 要删除商品的id
     * @return 返回受影响的结果
     */
    public int deleteCommodity(int id);

    /**
     *修改商品
     * @param commodity 传入修改的商品对象
     * @return 返回受影响的行数
     */
    public int updateCommodity(Commodity commodity);

    /**
     * 查询所有商品（state不为2的商品信息）
     * @return 返回所有商品集合
     */
    public List<Commodity> selectAll();

    /**
     * 查询所有已上架商品
     * @return 返回所有已上架商品对象
     */
    public List<Commodity> selectGrounding();

    /**
     * 查询以下架商品
     * @return 返回所有已下架商品集合
     */
    public List<Commodity> selectOffTheShelf();

    /**
     * 查询已经逻辑删除的商品
     * @return 返回查询的list集合
     */
    public List<Commodity> selectByState();
}
